home *** CD-ROM | disk | FTP | other *** search
- package com.extensibility.app;
-
- import com.extensibility.rock.AutoCompleteDocument;
- import com.extensibility.rock.RDialog;
- import com.extensibility.rock.Screen;
- import java.awt.Container;
- import java.awt.Dialog;
- import java.awt.Dimension;
- import java.awt.FlowLayout;
- import java.awt.Font;
- import java.awt.Frame;
- import java.awt.GridBagConstraints;
- import java.awt.GridBagLayout;
- import java.awt.Insets;
- import java.awt.Window;
- import java.util.Enumeration;
- import javax.swing.AbstractButton;
- import javax.swing.Box;
- import javax.swing.ButtonGroup;
- import javax.swing.Icon;
- import javax.swing.JButton;
- import javax.swing.JCheckBox;
- import javax.swing.JComponent;
- import javax.swing.JDialog;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.JRadioButton;
- import javax.swing.JScrollPane;
- import javax.swing.JTextArea;
- import javax.swing.JTextField;
- import javax.swing.text.JTextComponent;
-
- public class BasicDialog extends RDialog {
- JLabel art;
- JTextArea message = UI.createTextArea(false);
- Object[] options;
- JLabel[] label;
- JButton[] button;
- public int dismissalBtn = -1;
-
- public BasicDialog(Frame var1, String var2, Icon var3, String var4, Object[] var5, Object[] var6, String[] var7) {
- super(var1, true);
- ((Dialog)this).setTitle(var2);
- this.prepare(var3, var4, var5, var6, var7);
- }
-
- protected int getTextFieldCount() {
- int var1 = 0;
-
- for(int var2 = 0; var2 < this.options.length; ++var2) {
- if (this.options[var2] instanceof JTextField) {
- ++var1;
- }
- }
-
- return var1;
- }
-
- protected JTextField getTextField(int var1) {
- for(int var2 = 0; var2 < this.options.length; ++var2) {
- if (this.options[var2] instanceof JTextField && var1-- == 0) {
- return (JTextField)this.options[var2];
- }
- }
-
- return null;
- }
-
- protected JCheckBox getCheckBox(int var1) {
- for(int var2 = 0; var2 < this.options.length; ++var2) {
- if (this.options[var2] instanceof JCheckBox && var1-- == 0) {
- return (JCheckBox)this.options[var2];
- }
- }
-
- return null;
- }
-
- protected ButtonGroup getRadioGroup(int var1) {
- for(int var2 = 0; var2 < this.options.length; ++var2) {
- if (this.options[var2] instanceof ButtonGroup && var1-- == 0) {
- return (ButtonGroup)this.options[var2];
- }
- }
-
- return null;
- }
-
- protected JRadioButton getRadioButton(int var1, int var2) {
- ButtonGroup var3 = this.getRadioGroup(var1);
- JRadioButton var4 = null;
-
- for(Enumeration var5 = var3.getElements(); var2-- >= 0; var4 = (JRadioButton)var5.nextElement()) {
- }
-
- return var4;
- }
-
- public String getField(int var1) {
- return this.getTextField(var1).getText();
- }
-
- public void setButtonEnable(int var1, boolean var2) {
- JButton var3 = this.button[var1];
- ((AbstractButton)var3).setEnabled(var2);
- }
-
- public void setAutoComplete(int var1, Enumeration var2) {
- JTextField var3 = this.getTextField(var1);
- AutoCompleteDocument var4 = new AutoCompleteDocument(var3, var2);
- String var5 = ((JTextComponent)var3).getText();
- ((JTextComponent)var3).setDocument(var4);
- ((JTextComponent)var3).setText(var5);
- }
-
- public boolean getCheck(int var1) {
- return this.getCheckBox(var1).isSelected();
- }
-
- public boolean getRadio(int var1, int var2) {
- return this.getRadioButton(var1, var2).isSelected();
- }
-
- public int getDismissalButton() {
- return this.dismissalBtn;
- }
-
- protected int getOptionsLength() {
- return this.options != null ? this.options.length : -1;
- }
-
- protected int getOptionsGridHeight() {
- int var1 = 0;
-
- for(int var2 = 0; var2 < this.options.length; ++var2) {
- if (this.options[var2] instanceof JCheckBox) {
- ++var1;
- } else if (this.options[var2] instanceof ButtonGroup) {
- ++var1;
- } else if (this.options[var2] instanceof JTextField) {
- var1 += 2;
- }
- }
-
- return var1;
- }
-
- protected void prepare(Icon var1, String var2, Object[] var3, Object[] var4, String[] var5) {
- Font var6 = (new JLabel()).getFont();
- int var7 = var3.length;
- this.label = new JLabel[var7];
-
- for(int var8 = 0; var8 < var7; ++var8) {
- if (var3[var8] instanceof String) {
- this.label[var8] = new JLabel((String)var3[var8]);
- } else if (var3[var8] instanceof String[]) {
- this.label[var8] = new JLabel(((String[])var3[var8])[0]);
- }
- }
-
- this.options = new Object[var7];
-
- for(int var9 = 0; var9 < var7; ++var9) {
- if (var4[var9] instanceof Boolean) {
- this.options[var9] = new JCheckBox((String)var3[var9]);
- if ((Boolean)var4[var9]) {
- ((JCheckBox)this.options[var9]).setSelected(true);
- }
- } else if (!(var4[var9] instanceof Integer)) {
- if (var4[var9] instanceof String) {
- this.options[var9] = UI.createTextField((String)var4[var9]);
- } else if (var4[var9] == null) {
- this.options[var9] = UI.createTextField();
- }
- } else {
- ButtonGroup var10 = new ButtonGroup();
- String[] var11 = (String[])var3[var9];
-
- for(int var12 = 1; var12 < var11.length; ++var12) {
- JRadioButton var13 = new JRadioButton(var11[var12]);
- var10.add(var13);
- if ((Integer)var4[var9] == var12 - 1) {
- ((AbstractButton)var13).setSelected(true);
- }
- }
-
- this.options[var9] = var10;
- }
- }
-
- int var18 = var5.length;
-
- while(var18 > 0) {
- --var18;
- if (var5[var18] != null) {
- break;
- }
- }
-
- ++var18;
- this.button = new JButton[var18];
-
- for(int var20 = 0; var20 < var18; ++var20) {
- this.button[var20] = new JButton(var5[var20]);
- this.button[var20].addActionListener(new 1(var20, this));
- this.button[var20].setMnemonic(var5[var20].charAt(0));
- }
-
- this.art = new JLabel(var1);
- this.message.setFont(var6);
- this.message.setBackground(((JDialog)this).getContentPane().getBackground());
- this.message.setText(var2);
- boolean var21 = this.message.getText().length() > 0;
- ((JDialog)this).getContentPane().setLayout(new GridBagLayout());
- GridBagConstraints var22 = new GridBagConstraints();
- var22.insets = new Insets(16, 16, 0, 4);
- var22.gridx = 0;
- var22.gridy = 0;
- var22.gridheight = this.getOptionsGridHeight() + (var21 ? 1 : 0);
- var22.anchor = 18;
- ((JDialog)this).getContentPane().add(this.art, var22);
- var22.insets = new Insets(20, 16, 0, 16);
- var22.gridx = 1;
- var22.gridheight = 1;
- var22.fill = 1;
- var22.weightx = (double)1.0F;
- var22.weighty = (double)1.0F;
- if (!var21) {
- var22.gridy = -1;
- } else if (this.message.getText().length() > 384) {
- this.message.setMargin(new Insets(4, 4, 4, 4));
- JScrollPane var14 = new JScrollPane(this.message);
- ((JComponent)var14).setPreferredSize(new Dimension(360, 200));
- ((JDialog)this).getContentPane().add(var14, var22);
- } else {
- this.message.setSize(260, 360);
- ((JDialog)this).getContentPane().add(this.message, var22);
- }
-
- var22.weightx = (double)0.0F;
- var22.weighty = (double)0.0F;
- var22.fill = 0;
- var22.insets = new Insets(var21 ? 8 : 20, 16, 0, 16);
-
- for(int var23 = 0; var23 < var7; ++var23) {
- if (this.options[var23] instanceof JTextField) {
- ++var22.gridy;
- ((JDialog)this).getContentPane().add(this.label[var23], var22);
- ++var22.gridy;
- var22.insets.top = 2;
- var22.fill = 2;
- ((JDialog)this).getContentPane().add((JTextField)this.options[var23], var22);
- var22.fill = 0;
- var22.insets.top = 8;
- } else if (!(this.options[var23] instanceof ButtonGroup)) {
- if (this.options[var23] instanceof JCheckBox) {
- ++var22.gridy;
- ((JDialog)this).getContentPane().add((JCheckBox)this.options[var23], var22);
- }
- } else {
- ++var22.gridy;
- Box var15 = Box.createHorizontalBox();
- this.label[var23].setAlignmentY(0.5F);
- ((Container)var15).add(this.label[var23]);
- ((Container)var15).add(Box.createHorizontalStrut(8));
- Enumeration var16 = ((ButtonGroup)this.options[var23]).getElements();
-
- while(var16.hasMoreElements()) {
- AbstractButton var17 = (AbstractButton)var16.nextElement();
- ((JComponent)var17).setAlignmentY(0.5F);
- ((Container)var15).add(var17);
- }
-
- ((JDialog)this).getContentPane().add(var15, var22);
- }
-
- var22.insets.top = 8;
- }
-
- JPanel var24 = new JPanel(new FlowLayout(1, 16, 0));
-
- for(int var25 = 0; var25 < this.button.length; ++var25) {
- ((Container)var24).add(this.button[var25]);
- }
-
- ++var22.gridy;
- var22.anchor = 10;
- var22.insets.top = 16;
- var22.insets.bottom = 8;
- ((JDialog)this).getContentPane().add(var24, var22);
- ((Window)this).pack();
- Screen.centerInScreen(this);
- }
-
- protected void doButton(int var1) {
- this.dismissalBtn = var1;
- ((Window)this).dispose();
- }
-
- protected void setCheck(int var1) {
- if (this.options[var1] instanceof JCheckBox) {
- ((JCheckBox)this.options[var1]).setSelected(true);
- }
-
- }
-
- public void addNotify() {
- super.addNotify();
- if (this.options.length == 0) {
- this.button[0].requestFocus();
- } else if (this.options[0] instanceof JComponent) {
- ((JComponent)this.options[0]).requestFocus();
- } else if (this.options[0] instanceof ButtonGroup) {
- this.getRadioButton(0, 0).requestFocus();
- } else {
- ((JDialog)this).getRootPane().requestFocus();
- }
-
- ((RDialog)this).installEscape(this.button[this.button.length - 1]);
- ((RDialog)this).installDefault(this.button[0]);
- int var1 = this.getTextFieldCount();
-
- while(true) {
- --var1;
- if (var1 < 0) {
- return;
- }
-
- ((RDialog)this).installDefault(this.getTextField(var1));
- }
- }
- }
-